package com.water.quality.testing.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.water.quality.testing.dao.WaterData;
import java.time.LocalDateTime;
import java.util.List;


public interface WaterDataService extends IService<WaterData> {
    /**
     * 根据水质id获取水质数据
     * @param id  水质id
     */
    List<WaterData> getWaterDataById(Long id);

    /**
     * 获取所有水质数据（分页查询）
     * @param pageNum  当前页
     * @param pageSize 一页显示的数据条数
     * @param observationName  观测点名字（如果没使用根据观测点名字查询，默认空字符串）
     * @param start 开始时间（用于查询指定区间范围的水质数据， 不传默认为 null）
     * @param end  结束时间（用于查询指定区间范围的水质数据，不传默认为 null）
     */
    IPage<WaterData> getAllWaterData(Integer pageNum, Integer pageSize, String observationName, LocalDateTime start, LocalDateTime end);

    /**
     * 根据观测点名字查找该地区的水质数据
     * @param observationName 观测点名字
     */
    List<WaterData> getWaterByObservationPointName(String observationName);

    /**
     * 获取观测点最后插入的一条数据（该方法是用在模拟数据时使用）
     * @param observationPointId  观测点id
     */
    WaterData getLatestWaterData(Long observationPointId);

    /**
     * 新增水质数据（该方法是用在模拟数据时使用）
     * @param waterData 水质数据实体类
     */
    void saveWaterData(WaterData waterData);

}
